<!DOCTYPE html>
<html lang='en'>

<head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>Document</title>
    <script src='./vue.js'></script>
    <style>
        .box {
            border: 1px solid #f66;
            width: 140px;
            padding: 9px;
            box-sizing: border-box;
        }

        .box img {
            width: 120px;
        }
    </style>
</head>

<body>
    <div id='app'>

        <cart class="box" :item="{url: './1.webp',title: '插槽使用'}">
            <span style="color: red">自营</span>
            <span style="color: blue">秒杀</span>
        </cart>


        <cart class="box" v-for="(item,index) in list" :key="index" :item="item">
            <span v-if="index == 1" style="color: red">自营</span>
        </cart>

    </div>
</body>

<template id="cart">
    <div>
        <img :src="item.url" alt="">

        <!-- 
            slot 是我们插槽的出口，可以插入一个标签或者组件，插槽的作用是做内容分发用的
            一个 slot 最好只插入一个东西，默认插槽是可以插入多个内容。但是如果内容有位置
            或者其他的要求的情况下，我们就不能只使用一个插槽出口了。
            当使用两个 slot 的时候会出现一个问题，就是插槽内容被渲染了两次
            如果我们想插入多个内容，且内容在不同的地方，我们该如何去做呢？
         -->
        <slot></slot>
        <h3> {{item.title}} </h3>
        <slot></slot>
    </div>
</template>

<script>

    const cart = {
        template: '#cart',
        props: ['item']
    }


    const app = {
        data() {
            return {
                list: [
                    {
                        url: './1.webp',
                        title: '精美碗筷子'
                    }, {
                        url: './1.webp',
                        title: '精美家庭套装'
                    }, {
                        url: './1.webp',
                        title: '一人 6 件套'
                    }
                ]
            }
        },
        methods: {},
        components: {
            cart
        }
    }
    const vm = Vue.createApp(app).mount('#app')
</script>

</html>